<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Administrador extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('act_model');
        $this->load->model('funciones_model');
        $this->load->model('log_model');
        $this->load->helper('url');
        $this->load->helper('form');
        $this->load->library('session');
        $this->load->library('encrypt');
    }

    /* Lleva a la vista del log. */

    public function goVerLog() {
        
        $data['log'] = $this->log_model->obtenerLog();
        $this->load->view('verLogAdmin',$data);
    }

    /* Lista todos los usuarios y le da las opciones correspondientes
      al administrador */

    public function listaUsuarios() {
        $this->load->model('act_model');
        $data['usuarios'] = $this->act_model->obtenerEncargados();
        $data['base_url'] = '//localhost/soft4';
        $this->load->view('lista_usuarios', $data);
    }

    /* Registra un invitado con los campos email y constrasen~a. */

    function goRegistrarInvitado() {
        $this->load->view('registroInvitado');
    }

    // Metodo que define el registro de un invitado, donde los unicos campos
    // que se llenan son email y password
    public function registrarInvitado() {
        $this->load->helper('form');
        $datos = array(
            'email' => $this->input->post('email'),
            'password' => $this->input->post('password')
        );

        $this->act_model->registrarInvitado($datos);
        $this->load->helper('url');

        $this->load->library('email');
        $this->load->library('form_validation');

        $this->form_validation->set_rules('email', 'required');

        if ($this->form_validation->run() == FALSE) {
            echo 'Debe introducir un email para realizar la solicitud';
        } else {

            $user = $this->input->post('email');
            $pass = $this->input->post('password');
            $coment = $this->input->post('comentarios');
            $this->email->initialize();
            $this->email->from('taskboardusb@gmail.com', 'TaskBoardUSB -  Invitacion de creacion de cuenta');
            $this->email->to($user);
            $this->email->subject('TaskBoardUSB -  Invitacion de creacion de cuenta');
            $message = 'Invitacion de creacion de cuenta : ' . "\n\n\n";
            $message .= $coment . "\n";
            $message .= "\n";
            $message .= 'Debe ingresar al sistema y culminar su registro . Los datos que le fueron asignados son:' . "\n\n";
            $message .= '--> Username es :' . $user . "\n";
            $message .= '-->Contrasena :' . $pass . "\n\n\n";
            $message .= ' Bienvenido a TaskBoard!, te estamos esperando.';

            $this->email->message($message);

            $this->email->send();
        }

        if ($this->funciones_model->esAdmin() == TRUE) {
            $this->funciones_model->goParedAdmin();
        } else {
            $this->funciones_model->goParedUsuario();
        }
    }

    public function inhabUsuario($id) {

        $this->load->model('user_model');

        $usuario = $this->session->userdata('email');

        if ($this->user_model->esAdmin($usuario)) {
            $this->user_model->inhabilitar($id);
        }

        $this->listaUsuarios();
    }

    public function habUsuario($id) {

        $this->load->model('user_model');
        $usuario = $this->session->userdata('email');

        if ($this->user_model->esAdmin($usuario)) {
            $this->user_model->habilitar($id);
        }

        $this->listaUsuarios();
    }

    public function goConfigurarCuentaUsuario() {
        $usuario = $this->uri->segment(3);

        $this->db->select('*');
        $this->db->from('usuario as u');
        $this->db->where('u.id_usuario = ', $usuario);
        $data['query'] = $this->db->get();

        $this->load->view('configurarCuentaUsuario', $data);
    }

    // Metodo que modifica la informacion del usuario que se encuentra logueado
    public function modificarUsuario() {
        $this->load->helper('form');
        $id = $this->uri->segment(3);

        $password = $this->input->post('password');
        $alias = $this->input->post('alias');
        $nombres = $this->input->post('nombre');
        $apellidos = $this->input->post('apellido');
        $fecha_nacimiento = $this->input->post('fecha_nacimiento');
        $direccion = $this->input->post('direccion');
        $idioma_sistema = $this->input->post('idioma');
        $registro_completo = '1';


        //Le enviamos los datos al modelo
        $this->load->model('user_model');
        $this->user_model->modificarPorId($id, $password, $alias, $nombres, $apellidos, $fecha_nacimiento, $direccion, $idioma_sistema, $registro_completo);

        $this->listaUsuarios();
    }

    public function modificarAdmin($id) {

        $this->load->model('user_model');

        $email = $this->input->post('email');
        $nombre = $this->input->post('nombre');
        $apellido = $this->input->post('apellido');
        $password = $this->input->post('password');
        $alias = $this->input->post('alias');
        $direccion = $this->input->post('direccion');
        $fecha_nacimiento = $this->input->post('fecha_nacimiento');
        $idioma = $this->input->post('idioma');

        if ($email and $nombre and $apellido and $password and $alias and $direccion and $fecha_nacimiento and $idioma) {

            $this->user_model->modificar($email, $password, $alias, $nombre, $apellido, $fecha_nacimiento, $direccion, $idioma);
            $this->listaUsuarios();
            return;
        }

        $data['usuario'] = $this->user_model->obtenerUsuario($id);
        $this->goConfigurarCuentaUsuario();
    }

}

?>
